A Gentle Introduction to IoT Protocols: MQTT, CoAP, HTTP & WebSockets

Antonio Almeida and Jaime González-Arintero

June 14, 2017

GOTO Rate Intro

Warning: we'll go fast!

Full speed ahead

Visionaries

>_ On-line Man-Computer Communication, 1962

On-line Man-Computer Communication

Visionaries

>_ The Computer as a Communication Device, 1968

The Computer as a Communication Device

Arpanet

Arpanet

Why more protocols?

Why more protocols?

Connected devices

>_ Some figures...

Machines Go Online

-MIT Technology Review, 2014

Connected devices

>_ Some figures...

By 2020, component costs will have come down to the point that connectivity will become standard feature, even for processors costing less than $1.
- Peter Middleton, Gartner

Constrained devices


Internet: A definition



"A computer network consisting of a worldwide network of computer networks that use the TCP/IP network protocols to facilitate data transmission and exchange."

Several types of networks & protocols — industrial

Industrial protocols overview

Other protocols — building management

BMS protocols overview

Edge has devices — Cloud has servers


Edge and cloud

Edge

devices != gateways


MQTT

MQTT: Basics

Message Queue Telemetry Transport

"Publish-subscribe-based "lightweight" messaging protocol, for use on top of the TCP/IP protocol."

MQTT: Publish-subscribe model



MQTT: Publish-subscribe model

MQTT: Connecting to the broker


MQTT: Connecting

MQTT: Publishing to a topic



MQTT: Publishing

MQTT: Subscribing to a topic

>_ Example topics

>_ Wild cards

MQTT: Quality of Service

>_ QoS can be 0, 1, or 2


MQTT: Last will and testament



MQTT: Last will

MQTT: Learn more

There are client libraries and wrappers for practically all languages used in M2M setups, as well as different brokers/servers.


CoAP

CoAP: Basics

Constrained Application Protocol

"A specialized web transfer protocol for use with constrained nodes and constrained networks in the Internet of Things."


CoAP: RESTful environment


CoAP: RESTful environment

CoAP: Inspired by HTTP


CoAP: Inspired by HTTP

CoAP <---> Proxy <---> HTTP


CoAP: Inspired by HTTP

CoAP: HTTP vs CoAP


HTTP vs. CoAP

CoAP: Functionalities


CoAP: Client / Server

CoAP: Client-server

CoAP: Message format


CoAP: Client-server

CoAP: Confirmable


CoAP: Confirmable

CoAP: Non-confirmable


CoAP: Non-confirmable

CoAP: Reset


CoAP: Reset

CoAP: Reliability


CoAP: Reliability


CoAP: Reliability

CoAP: Observing resources I


CoAP: Observing resources II


CoAP: Observing resources

CoAP: Observing resources III


CoAP: Learn more



GOTO Rate Intro

IoT Protocols in Industry

What's a Fieldbus?

"Industrial, digital bus used for real-time distributed control."

Fieldbuses, fieldbuses all the way...

Industrial protocols overview

Fieldbus and Industrial Ethernet standards

Just a normal PLC

PLC S7

What's a PFC? (with an F!) I

>_ Programmable Fieldbus Controller

What's a PFC? (with an F!) II

>_ Programmable Fieldbus Controller

What's a PFC?

IO-Link example topology

And now ... subtle product placement

IO-Link example topology

A glimpse into the future

Future Factory Farms

Information Centric Networking (ICN) vs Host Centric Networking (HCN)

ICN

Data Distribution Service (DDS)

Data Distribution Service

DDS in a nutshell

ICN in a nutshell I

ICN in a nutshell II

ICN in a nutshell III

Conclusions

About us

>_ Antonio

>_ Jaime

>_ This presentation

Questions?

Cliffhanger with cats

GOTO Rate Intro